/**
 * <copyright>
 * </copyright>
 *
 * $Id$
 */
package com.lifesting.workflow.runtime;

import org.eclipse.emf.ecore.EObject;

/**
 * <!-- begin-user-doc -->
 * A representation of the model object '<em><b>Process Executor</b></em>'.
 * <!-- end-user-doc -->
 *
 * <p>
 * The following features are supported:
 * <ul>
 *   <li>{@link com.lifesting.workflow.runtime.ProcessExecutor#getInitialToken <em>Initial Token</em>}</li>
 *   <li>{@link com.lifesting.workflow.runtime.ProcessExecutor#getProcess <em>Process</em>}</li>
 *   <li>{@link com.lifesting.workflow.runtime.ProcessExecutor#getAccessManager <em>Access Manager</em>}</li>
 *   <li>{@link com.lifesting.workflow.runtime.ProcessExecutor#getTaskManager <em>Task Manager</em>}</li>
 * </ul>
 * </p>
 *
 * @see com.lifesting.workflow.runtime.RuntimePackage#getProcessExecutor()
 * @model
 * @generated
 */
public interface ProcessExecutor extends Executor {
	/**
	 * Returns the value of the '<em><b>Initial Token</b></em>' reference.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Initial Token</em>' reference isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Initial Token</em>' reference.
	 * @see #setInitialToken(Token)
	 * @see com.lifesting.workflow.runtime.RuntimePackage#getProcessExecutor_InitialToken()
	 * @model
	 * @generated
	 */
	Token getInitialToken();

	/**
	 * Sets the value of the '{@link com.lifesting.workflow.runtime.ProcessExecutor#getInitialToken <em>Initial Token</em>}' reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Initial Token</em>' reference.
	 * @see #getInitialToken()
	 * @generated
	 */
	void setInitialToken(Token value);

	/**
	 * Returns the value of the '<em><b>Process</b></em>' reference.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Process</em>' reference isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Process</em>' reference.
	 * @see #setProcess(com.lifesting.workflow.model.gd.Process)
	 * @see com.lifesting.workflow.runtime.RuntimePackage#getProcessExecutor_Process()
	 * @model
	 * @generated
	 */
	com.lifesting.workflow.model.gd.Process getProcess();

	/**
	 * Sets the value of the '{@link com.lifesting.workflow.runtime.ProcessExecutor#getProcess <em>Process</em>}' reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Process</em>' reference.
	 * @see #getProcess()
	 * @generated
	 */
	void setProcess(com.lifesting.workflow.model.gd.Process value);

	/**
	 * Returns the value of the '<em><b>Access Manager</b></em>' reference.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Access Manager</em>' reference isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Access Manager</em>' reference.
	 * @see #setAccessManager(AccessManager)
	 * @see com.lifesting.workflow.runtime.RuntimePackage#getProcessExecutor_AccessManager()
	 * @model
	 * @generated
	 */
	AccessManager getAccessManager();

	/**
	 * Sets the value of the '{@link com.lifesting.workflow.runtime.ProcessExecutor#getAccessManager <em>Access Manager</em>}' reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Access Manager</em>' reference.
	 * @see #getAccessManager()
	 * @generated
	 */
	void setAccessManager(AccessManager value);

	/**
	 * Returns the value of the '<em><b>Task Manager</b></em>' reference.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Task Manager</em>' reference isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Task Manager</em>' reference.
	 * @see #setTaskManager(TaskManager)
	 * @see com.lifesting.workflow.runtime.RuntimePackage#getProcessExecutor_TaskManager()
	 * @model
	 * @generated
	 */
	TaskManager getTaskManager();

	/**
	 * Sets the value of the '{@link com.lifesting.workflow.runtime.ProcessExecutor#getTaskManager <em>Task Manager</em>}' reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Task Manager</em>' reference.
	 * @see #getTaskManager()
	 * @generated
	 */
	void setTaskManager(TaskManager value);

} // ProcessExecutor
